# 多进程执行任务1-coding, 再执行任务2-music
# 1 定义写代码函数 coding
# 2 定义听音乐函数 music

# 注1: 主进程需要等待子进程运行完毕,在计算时间. 否则时间不准
# 注2: p1.join()  p2.join() 任何一个都可以让主进程阻塞, 站在操作系统的角度去理解
# 注3: python多进程强制性语法: 多进程代码需要写入到 if __name__ == '__main__': 条件中

import time
import multiprocessing
import os


def coding():
    for i in range(10):
        print(f'正在编写第{i}行代码')
        time.sleep(0.2)


def music():
    for i in range(10):
        print(f'正在听第{i}首音乐')
        time.sleep(0.2)


if __name__ == '__main__':
    print('多进程形式, 一边代码一边音乐')
    p1 = multiprocessing.Process(target=coding)
    p2 = multiprocessing.Process(target=music)
    print('p1-->', p1)
    print('p2-->', p2)

    t1 = time.time()
    p1.start()
    p2.start()

    print('aaaa')
    p1.join()   # 让主进程阻塞
    print('bbbb')
    p2.join()   # 让主进程阻塞
    print('cccc')

    t2 = time.time()
    print(f'用时{t2-t1}')
    pass